package java_thinking.unit_17.clone;

/**
 * 必看:https://blog.csdn.net/qq_37113604/article/details/81168224
 * 1.cloneable接口的作用：
 *      cloneable其实就是一个标记接口，只有实现这个接口后，然后在类中重写Object中的clone方法，然后通过类调用clone方法
 *      才能克隆成功，如果不实现这个接口，则会抛出CloneNotSupportedException(克隆不被支持)异常。Object中clone方法：
 *      protect native Object clone() throws CloneNotSupportedException;
 *
 * 2.native关键字修饰:
 *      native修饰的方法都是空的方法，但是这些方法都是有实现体的（这里也就间接说明了native关键字不能与abstract同时使用。
 *      因为abstract修饰的方法与java的接口中的方法类似，他显式的说明了修饰的方法，在当前是没有实现体的，abstract的方法
 *      的实现体都由子类重写），只不过native方法调用的实现体，都是非java代码编写的（例如：调用的是在jvm中编写的C的接口）
 *      ，每一个native方法在jvm中都有一个同名的实现体，native方法在逻辑上的判断都是由实现体实现的，另外这种native修饰的
 *      方法对返回类型，异常控制等都没有约束,由此可见，这里判断是否实现cloneable接口，是在调用jvm中的实现体时进行判断的.
 * @author: cww
 * @DateTime: 2019-04-27 10:57
 */

public class CloneableTheory {

}
